﻿use master
go
if exists(select name from sysdatabases where name =N'ShopOnline')
	drop database ShopOnline
go
create database ShopOnline
go
use ShopOnline
go

--1.Tao table Nha San Xuat
create table NhaSanXuat --Xong du lieu
(
    MaNSX varchar (10) not null,
    TenNSX nvarchar (100) not null,    
    --Xac dinh khoa chinh
    constraint PK_NhaSanXuat primary key (MaNSX)
);
go

--. Tạo table Danh Mục Sản Phẩm
create table DanhMucSanPham
(
	MaDanhMuc varchar(10) not null
	,TenDanhMuc nvarchar (50) not null
	,MaHienTai varchar(10)
	--Xác định khóa chính
	,constraint PK_DanhMucSanPham primary key (MaDanhMuc)
)

--2.Tao table San Pham
create table SanPham --Xong du lieu
(
    MaSP varchar (10) not null
    ,TenSP nvarchar (50) not null
    ,SoLuong int not null
    ,DonGia money not null
    ,ChatLieu nvarchar not null
    ,LuotTruyCap int not null
    ,MaNSX varchar (10) not null
    ,MaDanhMuc varchar (10) not null
    --Xac dinh khoa chinh
    ,constraint PK_SanPham primary key (MaSP)
    -- Xác định khóa ngoại tới table Nhà Sản Xuất
	,constraint FK_NhaSanXuat_SanPham foreign key (MaNSX) references NhaSanXuat (MaNSX)
	-- Xác định khóa ngoại tham chiếu tới table Loại Sản Phẩm
	,constraint FK_DanhMucSanPham_SanPham foreign key (MaDanhMuc) references DanhMucSanPham (MaDanhMuc)
);
go

--3. Tao table Kieu Dang
create table KieuDang
(
	MaKieuDang varchar (10) not null
	,TenKieuDang nvarchar (50) not null
	,HinhAnh varchar(50) not null
	,MaSP varchar(10) not null
	-- Xác định khóa chính
	,constraint PK_KieuDang primary key (MaKieuDang)
	-- Xác định khóa ngoại tới table Sản Phẩm
	,constraint FK_SanPham_KieuDang foreign key (MaSP) references SanPham (MaSP)
);
go

--4. Tạo table kích thướt
create table KichThuoc
(
	MaKichThuoc varchar (10) not null
	,TenKichThuoc varchar (5) not null
	,MaSP varchar(10) not null
	-- Xác định khóa chính
	,constraint PK_KichThuoc primary key (MaKichThuoc)
	--Xác định khóa ngoại tới table Sản Phẩm
	,constraint FK_SanPham_KichThuoc foreign key (MaSP) references SanPham (MaSP)
);
go

--30.Tao table Nguoi Dung
create table NguoiDung --Chua co du lieu
(
    MaNguoiDung varchar (10) not null
    ,HoTen nvarchar (50) not null
    ,GioiTinh bit not null
    ,NgaySinh smalldatetime not null
    ,DiaChi nvarchar (100) not null
    ,SoDT varchar (12)
    ,Email varchar (50) not null
    --Xac dinh khoa chinh
    ,constraint PK_NguoiDung primary key (MaNguoiDung)
    
);
go


--5 .Tao table Phieu Dat
create table PhieuDat 
(
    MaPhieuDat varchar (10) not null
    ,MaNguoiDung varchar (10) not null
    ,NgayDat smalldatetime not null
    ,NgayDuKienGiao smalldatetime not null
    ,NgayGiao smalldatetime not null
    ,DiaChiGiao nvarchar (100) not null
    ,HoTenNguoiNhan nvarchar (30) not null
    
    --Xac dinh khoa chinh
    ,constraint PK_PhieuDat primary key (MaPhieuDat)
    -- Xác định khóa ngoại tới bảng Người Dùng
    ,constraint FK_NguoiDung_PhieuDat foreign key (MaNguoiDung) references NguoiDung (MaNguoiDung)
);
go

--29.Tao table Chi Tiet Phieu Dat
create table ChiTietPhieuDat --Chua co du lieu
(
    MaPhieuDat varchar (10) not null
    ,MaSP varchar (10) not null
    ,DonGiaHienTai money not null
    ,SoLuong int not null
    ,GiamGia int
    ,ThanhTien money not null
    
    --Xac dinh khoa chinh
    ,constraint PK_ChiTietPhieuDat primary key (MaPhieuDat, MaSP)
    -- Xác định khóa ngoại tới bảng Sản Phẩm 
    ,constraint FK_SanPham_ChiTietPhieuDat foreign key (MaSP) references SanPham (MaSP)
    -- Xác định khóa ngoại tới bảng Phiếu Đặt
    ,constraint FK_PhieuDat_ChiTietPhieuDat foreign key (MaPhieuDat) references PhieuDat (MaPhieuDat)
);
go


--31.Tao table Tai Khoan
create table TaiKhoan --Chua co du lieu
(
    MaNguoiDung varchar (10) not null
    ,TenTaiKhoan varchar (50) not null
    ,MatKhau varchar (50) not null
    ,TrangThai bit
    ,Quyen varchar (3) not null
    ,MaKichHoat varchar(10) not null
    ,NgayTao smalldatetime not null
    ,NgayThayDoiMatKhau smalldatetime not null
    ,LanDangNhapCuoi smalldatetime not null
    --Xac dinh khoa chinh
    ,constraint PK_TaiKhoan primary key (MaNguoiDung)
    -- Xác định khóa ngoại tham chiếu tới bảng Người Dùng
    ,constraint FK_NguoiDung_TaiKhoan foreign key (MaNguoiDung) references NguoiDung (MaNguoiDung)
);
go


--33.Tao table Y Kien Nguoi Dung
create table YKienNguoiDung --Chua co du lieu
(
    MaYKien varchar (10) not null
    ,TieuDe nvarchar (50) not null
    ,Email varchar (50) not null
    ,HoTen nvarchar (50) not null
    ,NoiDung ntext not null
    ,MaSP varchar (10) not null
    --Xac dinh khoa chinh
    ,constraint PK_YKienNguoiDung primary key (MaYKien)
    -- Xác định khóa ngoại tham chiếu tới bảng Sản Phẩm
    ,constraint FK_SanPham_YKienNguoiDung foreign key (MaSP) references SanPham (MaSP)
);
go

-- Tao table Banner quang cao
create table QuangCao
(
	MaQuangCao varchar(10) not null
	,KichThuoc varchar (20) not null
	,HinhAnh varchar (50) not null
	,NgayTao smalldatetime not null
	,MaNguoiDung varchar(10) not null
	--Xac định khóa chính
	,constraint PK_QuangCao primary key (MaQuangCao)
	--Xác định khóa chính tham chiếu tới table NguoiDung
	,constraint FK_NguoiDung_QuangCao foreign key (MaNguoiDung) references NguoiDung (MaNguoiDung)
)
go

-- Tạo table Danh Mục Tin Tức
create table DanhMucTinTuc
(
	MaDanhMuc varchar(10) not null
	,TenDanhMuc nvarchar (50) not null
	,Link nvarchar(200)
	,MaHienTai varchar(10) not null
	,TrangThai bit not null
	--Xác định khóa chính
	,constraint PK_DanhMucTinTuc primary key (MaDanhMuc)
)
go

create table TinTuc
(
	MaTinTuc varchar(10) not null
	,TieuDe nvarchar (100) not null
	,Link nvarchar(200)
	,MoTa nvarchar(200)
	,NoiDung nvarchar(max)
	,NgayTao smalldatetime not null
	,LuotTruyCap varchar(10) not null
	,TrangThai bit not null
	,MaDanhMuc varchar(10) not null
	,MaNguoiDung varchar(10) not null
	--Xác định khóa chính
	,constraint PK_TinTuc primary key (MaTinTuc)
	--Xác định khóa ngoại tham chiếu tới table DanhMucTinTuc
	,constraint FK_DanhMucTinTuc_TinTuc foreign key (MaDanhMuc) references DanhMucTinTuc (MaDanhMuc)
	--Xác định khóa chính tham chiếu tới table NguoiDung
	,constraint FK_NguoiDung_TinTuc foreign key (MaNguoiDung) references NguoiDung (MaNguoiDung)
)
go